LE ORIGINI DEL SOFTWARE: OVVERO LE CAUSE CHE RENDONO NECESSARIA LA PROGRAMMAZIONE 


Per introdurre l'argomento che è alquanto complesso mi appoggerò ad un esempio.

Consideriamo la fabbrica X la quale produce scarpe da uomo. Ed immaginiamo che nel giro di poco tempo un primo negozio storna gli ordini, un'altro riduce la quantità di scarpe prenotate, un'altro ancora rimanda indietro la merce alla fabbrica. Le vendite stanno crollando ed X rischia il fallimento. Cosa si può fare?
Non c'è altra via che creare l'ufficio studi Y il quale raccoglie dati sui consumatori, sulla concorrenza, sui rivenditori e sui metodi di lavoro interni alla fabbrica. Si scopre così che la marca è ancora ben apprezzata dal pubblico ma alcune componenti della scarpa comprate all'estero non incontrano il favore dei consumatori. L'azienda cambia subito i fornitori, modifica i metodi di produzione e di nuovo il successo arride alle vendite.

 

Possiamo generalizzare l'esempio in questi termini. Il sistema X (fabbrica, ufficio commerciale, banca, istituto ecc.) non è mai isolato, opera invece all'interno dell'universo U il quale è il mercato piuttosto che l'habitat, il sistema politico o quello sociale o altro. Quattro principali elementi caratterizzano i rapporti tra X ed U:

  • Il sistema universo è capace di condizionare l'esistenza di X in male o in bene tanto da distruggerlo o anche da procurargli grosse opportunità.
  • Il sistema universo cambia nel tempo lentamente o anche repentinamente, in modo casuale oppure regolare, in senso negativo (come nell'esempio) o anche in senso positivo.
  • Per ovviare i danni oppure per sfruttare le opportunità, il sistema X si deve adattare ad U ed evolvere.
  • Lo strumento necessario per questa evoluzione è il sistema informativo SI, il quale raccoglie dati preventivamente oppure sul momento. Li elabora ed infine produce le indicazioni necessarie alla sopravvivenza di X. 

Questa soluzione, ovvero il completamento di X mediante il sistema informativo SI, si ritrova dappertutto: nelle aziende e nella vita personale, nelle organizzazioni, negli apparati e nei macchinari. Ne abbiamo già scritto nella risposta 16.

 

Dopo millenni di sistemi informativi manuali e parzialmente meccanizzati, oggi gli elaboratori realizzano il trattamento completo dell'informazione (vedi risposte 4 e 13). Dunque un elaboratore è un sistema informativo completamente automatico e di conseguenza quello che abbiamo spiegato a proposito di SI, ha precise conseguenze nella tecnologia dei computer.

Il sistema universo U si modifica in modo spesso imprevedibile dunque, ragionando a fil di logica, il computer SI non può essere completato in fabbrica. La costruzione comincia negli stabilimenti ma non può terminare lì perché gli ingegneri non gli possono assegnare i lavori che alla data di costruzione sono imprevedibili ed indefinibili. Ecco allora che essi preparano tutto ciò che è possibile in fabbrica e posticipano la messa a punto finale del computer in loco mediante la programmazione. Il programma software assegna all'ultimo momento il compito da eseguire. 

Le ragioni che dettano il software provengono dal sistema X servito dal SI ed influenzato da U. La variabilità del sistema universo spiega perché gli elaboratori sono necessariamente programmati e ci permette di andare più in là.

Molti programmi infatti non sono direttamente rivolti alla sopravvivenza di X ma servono per scopi collaterali come la gestione della macchina, il collegamento di rete, le funzioni di servizio ecc. Essi sono alquanto stabili vedi ad esempio il sistema operativo, il borwser, i programmi di utilità, i programmi di controllo di rete. Tutti questi costituiscono il cosidetto software di base o software di sistema. Gli altri che direttamente servono alla sopravvivenza di X, ad esempio il programma di fatturazione, quello delle paghe e stipendi, formano il software applicativo il quale talora deve essere creato e/o aggiornato tamburo-ribattente mentre quello di base quasi mai subisce tali urgenze. 

In sostanza la pressione dinamica di U su X genera indirizzi tecnologici via via più veloci che rispondono su tre livelli ai cambiamenti imposti da U. L'hardware stabilisce le parti rigide e fisse della macchina, poi viene il software di base che ha una stabilità intermedia, infine il software applicativo risponde direttamente alle richieste di U.

 

I programmi che calcolano funzioni matematiche per definizione sono 'astratti' cioè avulsi dall'attualità pratica, e si trovano all'estrema sinistra del gruppo del software. Infatti gli algoritmi per calcolare il logaritmo o il teorema di Pitagora non cambieranno mai.

La differenza macroscopica che esiste tra l'hardware ed il software è evidente anche ai non-addetti. La diversità esistente tra il software di base e quello applicativo, spesso chiamato gestionale, purtroppo viene trascurata e tale ignoranza produce nefande conseguenze. Infatti le due classi di programmi devono essere affrontati con metodi e tecnologie assai diverse, con criteri opposti.
Il software di base si prepara in laboratorio o comunque in un centro di produzione alquanto discostato da U, invece il software applicativo va definito sul campo cioè nell'azienda o istituzione X che fronteggia U. Il primo tipo di sviluppo privilegia un approccio a carattere generale, mentre il secondo sviluppo è molto empirico e specifico. Nel primo settore si parla di "logica" di programmazione, mentre nell'altro la programmazione appare un'"arte" per dirla con Donald Knuth.  

 


 

  Indietro

anno 2004





=